// Ts生效的情况:
// 1、写代码的时候，编辑器检测ts类型         √
// 2、打包的时候webpack调用插件检测类型      √
// 3、git提交的时候husky调用插件检测类型      √

/* 使用 */
// 1、处理.ts/.tsx文件 (添加babel插件，用来转换ts文件为js文件)
// 采用babel-preset-typescript利用babel编译ts文件成为js文件，
// babel-preset-react-app这个预设是配置react项目会装上的预设，这个预设里面用到了babel-preset-typescript,所以不需要在一个react项目中额外安装

// 2、添加ts配置文件 (配置文件用来控制ts怎么转js，转换规则)
// 此时项目可以正常使用ts，类型错误的时候，编辑器会在代码里报错，但是当类型错误的时候webpack仍然可以正常通过编译，项目还是能跑起来，这样很不规范，我们需要很严格的遵循ts语法，只要不符合ts类型，项目就起不来，需要添加webpack插件fork-ts-checker-webpack-plugin,这个插件会在打包的过程中，开一个进程对代码进行ts类型检查，这个检查的进程是与打包的进程一起进行的，这个插件就是用ts写的，所以不再需要额外的安装对应的ts类型声明文件，同时这个插件依赖typescript这个包，

// 3、手动添加本项目的ts类型声明文件，为本项目的依赖下载ts支持包 (ts环境搭建完成)
// 安装typescript包，这个包是一个ts的补丁，里面全是各种d.ts类型声明文件
// 4、在代码中正常使用ts就好了，不会用，用不好的去ts官网补基础

// 5、打包编译，ts转js，其实就是把ts文件中的类型代码删除，再把剩下的js代码放入js文件中， */
import React, { useEffect } from 'react';
interface List {
  a: number;
}

const Test: React.FC<List> = (props) => {
  useEffect(() => {
    console.log(props);
  }, []);
  return <div>1111</div>;
};
export default Test;
